Systems and methods for email based data ingestion and intelligent workflows

ABSTRACT

An ingestion server is provided for processing emails and providing intelligent workflows. The ingestion server includes a processor and a memory. The processor is configured to receive an electronic mail message containing a set of email content and to determine a content type. The content type is one of structured content and unstructured content. The processor is configured to identify a parsing module from a plurality of parsing modules to process the set of email content. The processor is configured to apply the identified parsing module to the set of email content to obtain a set of parsed email content. The processor is configured to apply a mapper module to the set of parsed email content to obtain a routing path. The processor is also configured to define an intelligent workflow based on the routing path. The processor is also configured to submit the work item using the intelligent workflow.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.17/115,992, which was filed Dec. 9, 2020. The entire disclosure of saidapplication is incorporated herein by reference.

FIELD

The field generally relates to systems for processing and ingestingelectronic mail and intelligent gateways for processing structured andunstructured electronic mail to create automated intelligent workflows.

BACKGROUND

In modern computing, electronic mail (“email”) may be used for purposesother than user-to-user communication and, instead, to providecommunications infrastructure in more complex systems. In some examples,email may be used as a tool to trigger or effect a process or a seriesof events. For example, a service may receive an email and, based onthat email, perform additional steps. Such email driven applications aregaining in popularity in a variety of enterprise systems.

One of the advantages of email is that it is relatively widely availableand allows significant flexibility in content. However, that flexibilityof email is also associated with complexity from varying formatsincluding both structured and unstructured formats. As a result, a knowntechnical challenge for email-based systems is providing consistentinterpretation and processing of emails with such a varying structuredand unstructured formats. In many cases, such systems face challenges orinability to process, understand, ingest, and utilize email content in aconsistent and reliable manner. As a result, the ability to use email insuch email-based systems may be limited and emails used in such systemsmay fail to be reliably routed or understood. The wide range of emailformats therefore presents a technical challenge for any system that mayutilize email as an initiation path.

In some known examples, email is used as a mechanism to initiatetransactions and drive other processes. As a part of this approach,email information or content is received and extracted (or “ingested”).However, because of the problems identified above, many such systemsface difficulties in such ingestion or extraction. Further, transactionsteps based on email content (e.g., routing of workflows) often failbecause of such problems in ingestion or extraction. Such failuresfrequently render these email-based systems inefficient or cause greatertechnical difficulties including operational failure.

As such, systems and methods for improved ingestion, processing, andutilization of email data in structured and unstructured formats for usein email-based systems is desirable.

BRIEF SUMMARY

In one aspect, an ingestion server is provided for processing emails andproviding intelligent workflows. The ingestion server includes aprocessor and a memory. The processor is configured to receive anelectronic mail message containing a set of email content. The processoris also configured to determine a content type associated with the setof email content. The content type is one of structured content andunstructured content. The processor is additionally configured toidentify a parsing module from a plurality of parsing modules to processthe set of email content. The parsing module is identified based on thecontent type. The processor is also configured to apply the identifiedparsing module to the set of email content to obtain a set of parsedemail content. The processor is further configured to apply a mappermodule to the set of parsed email content to obtain a routing path. Theprocessor is also configured to define an intelligent workflow based onthe routing path. The processor is additionally configured to populate awork item using the set of parsed email content. The processor is alsoconfigured to submit the work item using the intelligent workflow.

In another aspect, an ingestion system is provided for processing emailsand providing intelligent workflows. The ingestion system includes anemail server further including an email processor and an email memory.The ingestion system also includes a workflow server further including aworkflow processor and a workflow memory. The ingestion system alsoincludes an ingestion server including a processor and a memory. Theingestion server is in communication with the email server and theworkflow server. The processor is configured to receive an electronicmail message containing a set of email content from the email server.The processor is also configured to determine a content type associatedwith the set of email content. The content type is one of structuredcontent and unstructured content. The processor is additionallyconfigured to identify a parsing module from a plurality of parsingmodules to process the set of email content. The parsing module isidentified based on the content type. The processor is also configuredto apply the identified parsing module to the set of email content toobtain a set of parsed email content. The processor is furtherconfigured to apply a mapper module to the set of parsed email contentto obtain a routing path. The processor is also configured to define anintelligent workflow based on the routing path. The processor isadditionally configured to populate a work item using the set of parsedemail content. The processor is also configured to submit the work itemusing the intelligent workflow to the workflow server.

In yet another aspect, a method is provided for processing emails andproviding intelligent workflows. The method is performed by an ingestionserver. The ingestion server includes a processor and a memory. Themethod includes receiving an electronic mail message containing a set ofemail content. The method also includes determining a content typeassociated with the set of email content. The content type is one ofstructured content and unstructured content. The method additionallyincludes identifying a parsing module from a plurality of parsingmodules to process the set of email content. The parsing module isidentified based on the content type. The method further includesapplying the identified parsing module to the set of email content toobtain a set of parsed email content. The method also includes applyinga mapper module to the set of parsed email content to obtain a routingpath. The method further includes defining an intelligent workflow basedon the routing path. The method also includes populating a work itemusing the set of parsed email content. The method further includessubmitting the work item using the intelligent workflow.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure will be better understood, and features, aspects andadvantages other than those set forth above will become apparent whenconsideration is given to the following detailed description thereof.Such detailed description makes reference to the following drawings,wherein:

FIG. 1 is a functional block diagram of an example insurance claimprocessing system.

FIG. 2 is a functional block diagram of an example computing device thatmay be used in the ingestion system described.

FIG. 3 is a functional block diagram of an ingestion system that may bedeployed within the system of FIG. 1 using the computing devices shownin FIG. 2.

FIG. 4 is a flow diagram representing the email processing andintelligent workflow provision method from the perspective of theingestion server shown in FIG. 3.

FIG. 5 is a diagram of elements of one or more example computing devicesthat may be used in the system shown in FIGS. 1 and 3.

In the drawings, reference numbers may be reused to identify similarand/or identical elements.

DETAILED DESCRIPTION

Unless defined otherwise, all technical and scientific terms used hereinhave the same meaning as commonly understood by one of ordinary skill inthe art to which the disclosure belongs. Although any methods andmaterials similar to or equivalent to those described herein can be usedin the practice or testing of the present disclosure, the preferredmethods and materials are described below.

The systems and methods described herein address known problems inemail-based systems and other messaging-based systems, and specificallythe problems created by varying structured and unstructured formats ofmessages and challenges in processing such messages.

Many known workflow systems heavily utilize email to drive transactionsand therefore are especially exposed to these issues. In many examples,as a result, emails sent to previous ingestion systems were lost orresulted in misrouting or misprocessing. Previous systems lacked anyrobust capability to reliably process and understand email with varyingformats. Previous systems also lacked the ability to set work itemattributes. These problems led to significant inefficiency and error.Therefore, a technological problem existed in prior solutions and a needto understand email along with a need to reliably process email sources,email subjects, and email content. and use resulting data in routing.

The described systems and methods address these challenges by providinga technological solution necessarily rooted in computer networking.Specifically, the systems and methods include an ingestion system and aningestion server for processing emails and providing intelligentworkflows.

The disclosed ingestion systems are configured to provide a robustsolution that ingests, processes, and utilizes emails of varyingstructured and unstructured formats without error. As a result, theseingestion systems provide enhanced accuracy of ingestion, routesworkflows accurately, and maintains service level agreements (“SLAs”)with regard to message routing. The ingestion systems also allowadministrative users to configure email types dynamically withoutchanging code or requiring release time pendency from informationtechnology teams. The ingestion systems thereby reduce or eliminatedeployment times and avoid pendency or error resolution in dealing withunstructured emails. In some examples, the ingestion systems allowstructured email types to be configured and implemented without delay.Thus, the described ingestion systems increase overall efficiency anddata accuracy.

The disclosed ingestion systems provide tools to configure unstructuredemail types. Such configuration tools allow for setting email source andsubject and resulting routing. Such systems have resulted in enhancedemail message processing volume and accuracy.

The ingestion server provides ingestion services that may also bereferred to as a Central Intake Service for processing structured andunstructured messages, and more specifically for processing structuredand unstructured emails. The ingestion server includes several modulesconfigured to provide the methods described herein. The modules include:(1) a central process module (also referred to as an email adaptermodule) configured to receive inbound messages from another system(e.g., an email server) and submit the messages to downstream modules;(2) parsing modules configured to perform functions including parsingemail content and assign the content to business object(s); (3) a fileextraction module (also referred to as a filenet module) for extractingattached files from the email and extracting content from such attachedfiles; (4) a mapper module for mapping assigned business objects toother business objects; and (5) a routing module for routing using aworkflow server. Such modules are described in more detail below.

The central process module is configured to receive email messages thatare sent from another system, including through the use of an emailserver. The received email messages may be in any suitable file format.The central process module is also configured to initiate the calling ofdownstream modules. In some examples, the central process module is alsoconfigured to coordinate the ingestion process in its entirety byinvoking each module or sub-module.

The parsing modules are configured to parse email content and to assignthe parsed content to a business object(s). The logic applied by theparsing modules is complex and described in detail below. In someexamples, the parsing modules utilize text processing algorithms todetermine the content of the email.

The parsing modules are distinct for structured emails and unstructuredemails in some examples. In other examples, a singular parsing module isused with sub-modules for parsing structured and unstructured emails.The parsing module performs steps to determine whether each email isstructured or unstructured. As used herein, a “structured email” is anemail with fixed structures (or labels) that identify associated emailcontent appearing after (or immediately proximate to) the fixedstructure(s). As used herein, an “unstructured” email is an emailwithout such fixed structured (or labels) that identify associated emailcontent. Email types are determined in the following manner. When anemail is received by the ingestion server (e.g., at the central processmodule), an email type identification module applies a method toidentify the email type. In one example, the email type identificationmodule compares the subject line and the from address of the email to anemail content table defining potential email types based on, forexample, email attributes including email from address and email subjectline. The email content table includes a plurality of rows (or entries)with unique values for from addresses and subject lines and associatedemail types. Therefore, the email type identification module identifiesa match between the email and a row (or entry) with matching subjectlines and from addresses. If a match is determined, the email type isidentified based on the entry with a matching subject line and fromaddress. In another example, if no match is found in the prior step, theemail type identification module compares the subject line of the emailto the email content table to identify an entry with a matching subjectline. If a match is determined, the email type is identified based onthat matching entry. In another example, if no match is found in theprior steps, the email type identification module compares the fromaddress of the email to the email content table to identify an entrywith a matching from address. If a match is determined, the email typeis identified based on that matching entry. In another example, if nomatch is determined in the prior steps, the email ingestion systemdetermines that the email type is unstructured. As described below,emails with unstructured types are processed with a distinct method andmodules based on a business exception path. In some examples, the emailtype identification module performs a keyword search based on a list ofkeywords associated with a specified structure in a keyword lookuptable. If the keyword is found in the email, the email typeidentification module determines that the email type is that whichcorresponds to the matching keyword. In some examples, email types maybe defined for complex subject lines containing multiple attributes usedfor matching to email type.

Structured emails, as described herein, have each fixed structure (orlabel) and associated content on distinct lines of the email with adelimiter after each fixed structure. In one example, the delimiter is acolon but the delimiter may be any suitable alphanumeric character. Eachfixed structure (or label) is unique in structured emails to avoidduplication of email content or misinterpretation based thereon. In mostexamples, the fixed structure value or label value (i.e., the contentassociated with the corresponding fixed structure or label) isimmediately after or otherwise proximate to the corresponding fixedstructure or label, and on the same line of the email. In the exampleembodiment, three distinct parsing modules (or parsing submodules) maybe used for parsing the structured email.

In a first example, a first parsing submodule for structured emailreceives an email with fixed structures and corresponding fixedstructure values and applies a text processing algorithm to identifyeach fixed structure by retrieving each new string on each new line ofthe email until a delimiter is identified. The text processing algorithmalso identifies each subsequent fixed structure value by retrieving eachsubsequent string until an endline or the end of the email is detected.The retrieved fixed structures and fixed structure values are convertedinto name-value pairs which represent output from this first parsingsubmodule for structured email. In some examples, the parsing submodulemay also write the fixed structures and fixed structure labels to a hashmap.

In a second example, a second parsing submodule for structured emailreceives a list of fixed structures (or labels), an email, and an emailtype. The list of fixed structures may be obtained by invoking an emaillabel definition submodule or by any other suitable means. As describedabove, the email type may be determined by scanning email attributes(e.g., email from address and subject line) and comparing the scannedemail attributes to an email content table defining potential emailtypes based on, for example, email attributes including email fromaddress and email subject line. This second parsing submodule extractseach fixed structure (or label) identified based on the list of fixedstructures along with the corresponding fixed structure values andreturns the listed fixed structures and associated fixed structurevalues as name-value pairs. In some examples, the parsing submodule mayalso write the fixed structures and fixed structure labels to a hashmap. Unlike the first parsing submodule, the second parsing submoduledoes not identify any new fixed structure or fixed structure value basedon the presence of a new line and delimiters, but instead scans for onlyfixed structures that are identified in the list of fixed structures.

In a third example, a third parsing submodule for structured emailreceives a list of fixed structures from the email label definitionsubmodule, a list of fixed structures from a database table containingthe list of fixed structures, an email, and a hash map. The hash map maybe obtained from invoking the second parsing submodule. The thirdparsing submodule identifies fixed structures and fixed structure valuesthat are provided in both the email label definition submodule and thedatabase table.

In many examples, the parsing submodules determine a routing path (or arouting workstream) associated with the email. The routing path may bedetermined based on the email content table. In at least one example,the email content table includes columns for the following data for eachentry: (a) email type; (b) type (i.e., whether structured orunstructured); (c) subject line (i.e., subject lines associated with theemail type); (d) from line (i.e., a from line associated with the emailtype); (e) whether a workitem should be created for the email (i.e., aBoolean value indicating whether to create a workitem); (f) a routingworkstream indicating where to route the message; (g) a workstream stepindicating what steps should be taken next including (i) intake; (ii)load; and (iii) review; and (h) a routing team indicating receivinggroups.

The file extraction module or (filenet module) is configured toidentify, extract, and process content from attached files for use iningestion and workflows. In some examples, a subject may indicate thatan attachment is included for processing with a suitable attachmentidentifier. In other examples, the file extraction module detects thepresence of an attachment. The file extraction module extracts theattached file and identifies relevant information based on, for example,the email content table or a file processing table, and searches forresponsive information in the attached file. In one example, the fileextraction module extracts data from attached spreadsheet files (e.g.,.csv or .xcl files) and extracts specific column entries from thespreadsheet and, depending upon the column values and the rule setsdefined by the email content table or file processing table performsteps including: (i) create a work item based on the extracted data;(ii) load the extracted data into a corresponding database; and (iii)transmit a message based on the extracted data. In some examples, thefile extraction module performs a lookup of the corresponding databaseto determine whether a work item has been created corresponding to theextracted data and subsequently creates work items for entries withoutpreexisting work items and updates the corresponding entriesaccordingly. In further examples, the file extraction module determineswhether work item creation was successful, not started, or resulted inerror, and updates the corresponding database to reflect the work itemstatus.

In some examples, the central intake module applies an intake submoduleto identify new fixed structures in structured emails. Specifically, thecentral intake module parses fixed structures (based on the abovemethods) and identifies fixed structures that are not otherwiseidentified by the email label definition submodule or the database tablecontaining the list of fixed structures. The central intake moduleattempts to match each parsed fixed structure against those previouslyidentified fixed structures and any non-matching fixed structures areidentified as new. In some examples, the central intake module updatesthe email label definition submodule or the database module with suchnew fixed structures. In others, the central intake module prompts auser to confirm that the email label definition submodule or thedatabase module should be updated with such new fixed structures. Inother examples, the central intake module applies a default unstructuredtable to define default values for routing and processing anunstructured email, upon definition, including values for: (a) emailtype; (b) type (i.e., whether structured or unstructured); (c) subjectline (i.e., subject lines associated with the email type); (d) from line(i.e., a from line associated with the email type); (e) whether aworkitem should be created for the email (i.e., a Boolean valueindicating whether to create a workitem); (f) a routing workstreamindicating where to route the message; (g) a workstream step indicatingwhat steps should be taken next including (i) intake; (ii) load; and(iii) review; and (h) a routing team indicating receiving groups. Thesedefault values are used to define the processing of each unstructuredemail. In many examples, the values for subject line and from line forsuch default values are left blank or unspecified as they are not used.

In some examples, the central intake module is configured to log each ofthe steps performed by the modules and submodules, including writingrecords for each received email, each processing determination, eachwork item creation, and each routing activity. In other examples, thecentral intake module generates a resultant email content filereflecting the email content in any suitable file format including textfiles or HTML files.

The central intake module and associated modules and submodules areassociated with user interfaces configured to control and define thetables and rules described herein. The user interfaces also providevisualization and validation of rules for setting email types. Forexample, a user may provide a new email type including a new emailsubject line and email from line (or email source). The user interfaceis configured to verify that each new email type, new email subjectline, and new from line are all unique to avoid errors in processing.The user interface also allows users to set default values for emailtypes for, for example, use in processing unstructured emails pursuantto business exception paths. Routing module is configured to handle theprocessing of work items and communications based on the specified routepath.

The modules described herein utilize text processing using algorithmsincluding regular expressions and pattern matching or any suitablealternative.

The mapper module is configured to identify mapped business objects,routing workstreams, steps, and routing teams, and to route accordingly.Specifically, the mapper module utilizes the email content table valuesfor the email type, including default values, and routes accordingly. Insome examples, the mapper module routes a resulting work item to, forexample, a workflow server or any other suitable recipient.

An ingestion server is provided for processing emails and providingintelligent workflows. In some examples, the ingestion server is part ofan ingestion system including an email server that further includes anemail processor and an email memory, and a workflow server that includesa workflow processor and a work flow memory. The ingestion serverincludes a processor and a memory. The processor is configured toreceive an electronic mail message containing a set of email content.

The processor is also configured to determine a content type associatedwith the set of email content wherein the content type is one ofstructured content and unstructured content, as specified above. Theprocessor is further configured to identify a parsing module from aplurality of parsing modules to process the set of email content,wherein the parsing module is identified based on the content type.Specifically, the parsing module selected may be one of the parsingmodules or submodules specified above for structured or unstructuredcontent.

The processor is also configured to apply the identified parsing moduleto the set of email content to obtain a set of parsed email content. Theprocessor is further configured to apply a mapper module to the set ofparsed email content to obtain a routing path. The routing path may bedefined, as described above, in the email content table. The processoris also configured to define an intelligent workflow based on therouting path. The processor is also configured to populate a work itemusing the set of parsed email content. The work item may be required asspecified by the associated entry of the work item table. The processoris also configured to submit the work item using the intelligentworkflow.

The processor is also configured to apply a file extraction module tothe set of email content to obtain a file attached to the set of emailcontent. The processor is further configured to apply the identifiedparsing module to the attached file to obtain a set of parsed attacheddata. The processor is also configured to populate the work item usingthe set of parsed email content and the set of parsed attached data.

The processor is also configured to generate a work item identifierassociated with the electronic mail message upon receiving theelectronic mail message. The processor is additionally configured todefine the work item with the work item identifier and to populate thework item using the set of parsed email content.

Upon determining the content type associated with the set of emailcontent is structured content, the processor is configured to identify aset of fixed structures associated with the structured content. Theprocessor is also configured to identify the parsing module configuredto obtain data associated with the set of fixed structures. Theprocessor is further configured to apply the identified parsing moduleto the set of email content to obtain the set of parsed email contentassociated with the set of fixed structures.

Upon determining the content type associated with the set of emailcontent is unstructured content, the processor is configured to retrievea subject and a from address from the set of email content. Theprocessor is also configured to receive an email content table includinga plurality of entries each having an associated subject and anassociated from address. The processor is also configured to attempt tomatch at least one of the subject and the from address to the pluralityof entries having an associated subject matching the subject or anassociated from address matching the from address. The processor isfurther configured to apply the mapper module to the set of parsed emailcontent to obtain the routing path, wherein the routing path is at leastpartially identified by the matching entry having an associated subjectmatching the subject or an associated from address matching the fromaddress.

Upon failing to match at least one of the subject and the from addressto the plurality of entries, the processor is configured to determinethat the set of email content is associated with a business exception.The processor is also configured to identify a business exception pathand to apply the mapper module to the set of parsed email content toobtain the routing path associated with the business exception path.

The processor is also configured to receive an update to the emailcontent table associated with an update subject and an update fromaddress. The processor is also configured to validate that the updatesubject and update from address do not exist in the email content table.The processor is further configured to update the email content tablewith the update.

Generally, the systems and methods described herein are configured toperform at least the following steps: receiving an electronic mailmessage containing a set of email content; determining a content typeassociated with the set of email content wherein the content type is oneof structured content and unstructured content; identifying a parsingmodule from a plurality of parsing modules to process the set of emailcontent, wherein the parsing module is identified based on the contenttype; applying the identified parsing module to the set of email contentto obtain a set of parsed email content; applying a mapper module to theset of parsed email content to obtain a routing path; defining anintelligent workflow based on the routing path; populating a work itemusing the set of parsed email content; submitting the work item usingthe intelligent workflow; applying a file extraction module to the setof email content to obtain a file attached to the set of email content;applying the identified parsing module to the attached file to obtain aset of parsed attached data; populating the work item using the set ofparsed email content and the set of parsed attached data; generating awork item identifier associated with the electronic mail message uponreceiving the electronic mail message; defining the work item with thework item identifier; populating the work item using the set of parsedemail content; upon determining the content type associated with the setof email content is structured content, identifying a set of fixedstructures associated with the structured content; identifying theparsing module configured to obtain data associated with the set offixed structures; applying the identified parsing module to the set ofemail content to obtain the set of parsed email content associated withthe set of fixed structures; upon determining the content typeassociated with the set of email content is unstructured content,retrieving a subject and a from address from the set of email content;receiving an email content table including a plurality of entries eachhaving an associated subject and an associated from address; attemptingto match at least one of the subject and the from address to theplurality of entries having an associated subject matching the subjector an associated from address matching the from address; applying themapper module to the set of parsed email content to obtain the routingpath, wherein the routing path is at least partially identified by thematching entry having an associated subject matching the subject or anassociated from address matching the from address; upon failing to matchat least one of the subject and the from address to the plurality ofentries, determining that the set of email content is associated with abusiness exception; identifying a business exception path; applying themapper module to the set of parsed email content to obtain the routingpath associated with the business exception path; receiving an update tothe email content table associated with an update subject and an updatefrom address; validating that the update subject and update from addressdo not exist in the email content table; and updating the email contenttable with the update.

FIG. 1 is a functional block diagram of an example insurance claimprocessing system 100 including a primary insurance processor system110. Primary insurance processor system 110 includes subsystems 112,114, and 116 capable of providing claim processing, claim adjudication,and claim payment respectively. Specifically, primary insuranceprocessor system 110 is associated with a corresponding primaryinsurance database system 120. As described above and herein, databasesystems such as database systems 120 may include one or more than onedatabases that each are configured to use a DBMS. In some cases the DBMSsystems may be distinct from one another. Further, each database isassociated with a data schema that may be unique depending on whetherthe DBMS and clam category are distinct. As such, the databases includedata that cannot be processed using common programs. Database systems120 include necessary information stored on at least one of theirunderlying databases. Specifically, primary insurance database system120 includes coverage data 122, claim data 124, and payment data 126.

FIG. 2 is a functional block diagram of an example computing device thatmay be used in the ingestion system described, and may represent theingestion server, the email server, and the workflow server (all shownin FIG. 3). Specifically, computing device 200 illustrates an exampleconfiguration of a computing device for the systems shown herein, andparticularly in FIGS. 1 and 3. Computing device 200 illustrates anexample configuration of a computing device operated by a user 201 inaccordance with one embodiment of the present invention. Computingdevice 200 may include, but is not limited to, the ingestion server, thefirst database system, and the second database system (all shown in FIG.3), other user systems, and other server systems. Computing device 200may also include servers, desktops, laptops, mobile computing devices,stationary computing devices, computing peripheral devices, smartphones, wearable computing devices, medical computing devices, andvehicular computing devices. In some variations, computing device 200may be any computing device capable of the described methods forprocessing emails and providing intelligent workflows including aningestion server. In some variations, the characteristics of thedescribed components may be more or less advanced, primitive, ornon-functional.

In an example embodiment, computing device 200 includes a processor 211for executing instructions. In some embodiments, executable instructionsare stored in a memory area 212. Processor 211 may include one or moreprocessing units, for example, a multi-core configuration. Memory area212 is any device allowing information such as executable instructionsand/or written works to be stored and retrieved. Memory area 212 mayinclude one or more computer readable media.

Computing device 200 also includes at least one input/output component213 for receiving information from and providing information to user201. In some examples, input/output component 213 may be of limitedfunctionality or non-functional as in the case of some wearablecomputing devices. In other examples, input/output component 213 is anycomponent capable of conveying information to or receiving informationfrom user 201. In some embodiments, input/output component 213 includesan output adapter such as a video adapter and/or an audio adapter.Input/output component 213 may alternatively include an output devicesuch as a display device, a liquid crystal display (LCD), organic lightemitting diode (OLED) display, or “electronic ink” display, or an audiooutput device, a speaker or headphones. Input/output component 213 mayalso include any devices, modules, or structures for receiving inputfrom user 201. Input/output component 213 may therefore include, forexample, a keyboard, a pointing device, a mouse, a stylus, a touchsensitive panel, a touch pad, a touch screen, a gyroscope, anaccelerometer, a position detector, or an audio input device. A singlecomponent such as a touch screen may function as both an output andinput device of input/output component 213. Input/output component 213may further include multiple sub-components for carrying out input andoutput functions.

Computing device 200 may also include a communications interface 214,which may be communicatively coupleable to a remote device such as aremote computing device, a remote server, or any other suitable system.Communication interface 214 may include, for example, a wired orwireless network adapter or a wireless data transceiver for use with amobile phone network, Global System for Mobile communications (GSM), 3G,4G, or other mobile data network or Worldwide Interoperability forMicrowave Access (WIMAX). Communications interface 214 is configured toallow computing device 200 to interface with any other computing deviceor network using an appropriate wireless or wired communicationsprotocol such as, without limitation, BLUETOOTH®, Ethernet, or IEE802.11. Communications interface 214 allows computing device 200 tocommunicate with any other computing devices with which it is incommunication or connection.

FIG. 3 is a functional block diagram of an ingestion system 300 that maybe deployed within system 100 (shown in FIG. 1) using the computingdevice 200 (shown in FIG. 2). Specifically, ingestion system 300includes ingestion server 310, email server 320, workflow server 330,and ingestion database 340 and associated processors 311, 321, and 331,memories 312, 322, and 332, input/output 313, 323, and 333, andcommunications interface 314, 324, and 334. Ingestion database 340 isconfigured to provide the email content table, lookup table, work itemtable, file processing table, and other tables as needed to perform thefunctions described herein.

FIG. 4 is a flow diagram 400 representing the ingestion and workflowprovision process from the perspective of the ingestion system 300(shown in FIG. 3). The ingestion server 310 (shown in FIG. 3) isconfigured to receive 410 an electronic mail message containing a set ofemail content from the email server. The ingestion server 310 is alsoconfigured to determine 420 a content type associated with the set ofemail content wherein the content type is one of structured content andunstructured content. The ingestion server 310 is also configured toidentify 430 a parsing module from a plurality of parsing modules toprocess the set of email content, wherein the parsing module isidentified based on the content type. The ingestion server 310 is alsoconfigured to apply 440 the identified parsing module to the set ofemail content to obtain a set of parsed email content. The ingestionserver 310 is also configured to apply 450 a mapper module to the set ofparsed email content to obtain a routing path. The ingestion server 310is also configured to define 460 an intelligent workflow based on therouting path. The ingestion server 310 is also configured to populate470 a work item using the set of parsed email content and to submit 480the work item using the intelligent workflow to the workflow server.

FIG. 5 is a diagram 500 of elements of one or more example computingdevices that may be used in the system shown in FIGS. 1 and 3.Specifically, FIG. 5 describes subsystems available to ingestion server310 including central processing module 502, unstructured contentparsing module 504, structured content parsing module 506, fileextraction module 508, mapper module 510, routing module 512, and emaillabel definition module 514, all of which are described above.

The foregoing description is merely illustrative in nature and is in noway intended to limit the disclosure, its application, or uses. Thebroad teachings of the disclosure can be implemented in a variety offorms. Therefore, while this disclosure includes particular examples,the true scope of the disclosure should not be so limited since othermodifications will become apparent upon a study of the drawings, thespecification, and the following claims. It should be understood thatone or more steps within a method may be executed in different order (orconcurrently) without altering the principles of the present disclosure.Further, although each of the embodiments is described above as havingcertain features, any one or more of those features described withrespect to any embodiment of the disclosure can be implemented in and/orcombined with features of any of the other embodiments, even if thatcombination is not explicitly described. In other words, the describedembodiments are not mutually exclusive, and permutations of one or moreembodiments with one another remain within the scope of this disclosure.

Spatial and functional relationships between elements (for example,between modules) are described using various terms, including“connected,” “engaged,” “interfaced,” and “coupled.” Unless explicitlydescribed as being “direct,” when a relationship between first andsecond elements is described in the above disclosure, that relationshipencompasses a direct relationship where no other intervening elementsare present between the first and second elements, and also an indirectrelationship where one or more intervening elements are present (eitherspatially or functionally) between the first and second elements. Asused herein, the phrase at least one of A, B, and C should be construedto mean a logical (A OR B OR C), using a non-exclusive logical OR, andshould not be construed to mean “at least one of A, at least one of B,and at least one of C.”

In the figures, the direction of an arrow, as indicated by thearrowhead, generally demonstrates the flow of information (such as dataor instructions) that is of interest to the illustration. For example,when element A and element B exchange a variety of information butinformation transmitted from element A to element B is relevant to theillustration, the arrow may point from element A to element B. Thisunidirectional arrow does not imply that no other information istransmitted from element B to element A. Further, for information sentfrom element A to element B, element B may send requests for, or receiptacknowledgements of, the information to element A. The term subset doesnot necessarily require a proper subset. In other words, a first subsetof a first set may be coextensive with (equal to) the first set.

In this application, including the definitions below, the term “module”or the term “controller” may be replaced with the term “circuit.” Theterm “module” may refer to, be part of, or include processor hardware(shared, dedicated, or group) that executes code and memory hardware(shared, dedicated, or group) that stores code executed by the processorhardware.

The module may include one or more interface circuits. In some examples,the interface circuit(s) may implement wired or wireless interfaces thatconnect to a local area network (LAN) or a wireless personal areanetwork (WPAN). Examples of a LAN are Institute of Electrical andElectronics Engineers (IEEE) Standard 802.11-2016 (also known as theWIFI wireless networking standard) and IEEE Standard 802.3-2015 (alsoknown as the ETHERNET wired networking standard). Examples of a WPAN arethe BLUETOOTH wireless networking standard from the Bluetooth SpecialInterest Group and IEEE Standard 802.15.4.

The module may communicate with other modules using the interfacecircuit(s). Although the module may be depicted in the presentdisclosure as logically communicating directly with other modules, invarious implementations the module may actually communicate via acommunications system. The communications system includes physicaland/or virtual networking equipment such as hubs, switches, routers, andgateways. In some implementations, the communications system connects toor traverses a wide area network (WAN) such as the Internet. Forexample, the communications system may include multiple LANs connectedto each other over the Internet or point-to-point leased lines usingtechnologies including Multiprotocol Label Switching (MPLS) and virtualprivate networks (VPNs).

In various implementations, the functionality of the module may bedistributed among multiple modules that are connected via thecommunications system. For example, multiple modules may implement thesame functionality distributed by a load balancing system. In a furtherexample, the functionality of the module may be split between a server(also known as remote, or cloud) module and a client (or, user) module.

The term code, as used above, may include software, firmware, and/ormicrocode, and may refer to programs, routines, functions, classes, datastructures, and/or objects. Shared processor hardware encompasses asingle microprocessor that executes some or all code from multiplemodules. Group processor hardware encompasses a microprocessor that, incombination with additional microprocessors, executes some or all codefrom one or more modules. References to multiple microprocessorsencompass multiple microprocessors on discrete dies, multiplemicroprocessors on a single die, multiple cores of a singlemicroprocessor, multiple threads of a single microprocessor, or acombination of the above.

Shared memory hardware encompasses a single memory device that storessome or all code from multiple modules. Group memory hardwareencompasses a memory device that, in combination with other memorydevices, stores some or all code from one or more modules.

The term memory hardware is a subset of the term computer-readablemedium. The term computer-readable medium, as used herein, does notencompass transitory electrical or electromagnetic signals propagatingthrough a medium (such as on a carrier wave). The term computer-readablemedium is therefore considered tangible and non-transitory. Non-limitingexamples of a non-transitory computer-readable medium are nonvolatilememory devices (such as a flash memory device, an erasable programmableread-only memory device, or a mask read-only memory device), volatilememory devices (such as a static random access memory device or adynamic random access memory device), magnetic storage media (such as ananalog or digital magnetic tape or a hard disk drive), and opticalstorage media (such as a CD, a DVD, or a Blu-ray Disc).

The apparatuses and methods described in this application may bepartially or fully implemented by a special purpose computer created byconfiguring a general purpose computer to execute one or more particularfunctions embodied in computer programs. The functional blocks andflowchart elements described above serve as software specifications,which can be translated into the computer programs by the routine workof a skilled technician or programmer.

The computer programs include processor-executable instructions that arestored on at least one non-transitory computer-readable medium. Thecomputer programs may also include or rely on stored data. The computerprograms may encompass a basic input/output system (BIOS) that interactswith hardware of the special purpose computer, device drivers thatinteract with particular devices of the special purpose computer, one ormore operating systems, user applications, background services,background applications, etc.

The computer programs may include: (i) descriptive text to be parsed,such as HTML (hypertext markup language), XML (extensible markuplanguage), or JSON (JavaScript Object Notation), (ii) assembly code,(iii) object code generated from source code by a compiler, (iv) sourcecode for execution by an interpreter, (v) source code for compilationand execution by a just-in-time compiler, etc. As examples only, sourcecode may be written using syntax from languages including C, C++, C #,Objective-C, Swift, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl,Pascal, Curl, OCaml, Javascript®, HTML5 (Hypertext Markup Language 5threvision), Ada, ASP (Active Server Pages), PHP (PHP: HypertextPreprocessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, VisualBasic®, Lua, MATLAB, SIMULINK, and Python®.

What is claimed is:
 1. An ingestion server for processing emails andproviding one or more intelligent workflows, the ingestion servercomprising a processor and a memory, said processor is configured to:receive an electronic mail message containing a set of email content,wherein a content type is not identified within the set of emailcontent; determine the content type associated with the set of emailcontent wherein the content type is one of structured content andunstructured content; identify a parsing module from a plurality ofparsing modules to process the set of email content, wherein the parsingmodule is identified based on the content type; apply the identifiedparsing module to the set of email content to obtain a set of parsedemail content; apply a mapper module to the set of parsed email contentto obtain a routing path; define an intelligent workflow based on therouting path; populate a work item using the set of parsed emailcontent; and submit the work item using the intelligent workflow.
 2. Theingestion server of claim 1, wherein the processor is further configuredto: apply a file extraction module to the set of email content to obtaina file attached to the set of email content; apply the identifiedparsing module to the attached file to obtain a set of parsed attacheddata; and populate the work item using the set of parsed email contentand the set of parsed attached data.
 3. The ingestion server of claim 1,wherein the processor is further configured to: generate a work itemidentifier associated with the electronic mail message upon receivingthe electronic mail message; define the work item with the work itemidentifier; and populate the work item using the set of parsed emailcontent.
 4. The ingestion server of claim 1, wherein the processor isfurther configured to: upon determining the content type associated withthe set of email content is structured content, identify a set of fixedstructures associated with the structured content; identify the parsingmodule configured to obtain data associated with the set of fixedstructures; and apply the identified parsing module to the set of emailcontent to obtain the set of parsed email content associated with theset of fixed structures.
 5. The ingestion server of claim 1, wherein theprocessor is further configured to: upon determining the content typeassociated with the set of email content is unstructured content,retrieve a subject and a from address from the set of email content;receive an email content table including a plurality of entries eachhaving an associated subject and an associated from address; attempt tomatch at least one of the subject and the from address to one or more ofthe plurality of entries having an associated subject matching thesubject or an associated from address matching the from address; andapply the mapper module to the set of parsed email content to obtain therouting path, wherein the routing path is at least partially identifiedby the attempt to match having an associated subject matching thesubject or an associated from address matching the from address.
 6. Theingestion server of claim 5, wherein the processor is further configuredto: upon failing the attempt to match at least one of the subject andthe from address to the plurality of entries, determine that the set ofemail content is associated with a business exception; identify abusiness exception path; and apply the mapper module to the set ofparsed email content to obtain the routing path associated with thebusiness exception path.
 7. The ingestion server of claim 5, wherein theprocessor is further configured to: receive an update to the emailcontent table associated with an update subject and an update fromaddress; validate that the update subject and update from address do notexist in the email content table; and update the email content tablewith the update.
 8. An ingestion system for processing emails andproviding one or more intelligent workflows, the ingestion systemcomprising: an email server comprising an email processor and an emailmemory; a workflow server comprising a workflow processor and a workflowmemory; and an ingestion server comprising a processor and a memory,said ingestion server is in communication with the email server and theworkflow server, said processor is configured to: receive an electronicmail message containing a set of email content from the email server,wherein a content type is not identified within the set of emailcontent; determine the content type associated with the set of emailcontent wherein the content type is one of structured content andunstructured content; identify a parsing module from a plurality ofparsing modules to process the set of email content, wherein the parsingmodule is identified based on the content type; apply the identifiedparsing module to the set of email content to obtain a set of parsedemail content; apply a mapper module to the set of parsed email contentto obtain a routing path; define an intelligent workflow based on therouting path; populate a work item using the set of parsed emailcontent; and submit the work item using the intelligent workflow to theworkflow server.
 9. The ingestion system of claim 8, wherein theprocessor is further configured to: apply a file extraction module tothe set of email content to obtain a file attached to the set of emailcontent; apply the identified parsing module to the attached file toobtain a set of parsed attached data; and populate the work item usingthe set of parsed email content and the set of parsed attached data. 10.The ingestion system of claim 8, wherein the processor is furtherconfigured to: generate a work item identifier associated with theelectronic mail message upon receiving the electronic mail message;define the work item with the work item identifier; and populate thework item using the set of parsed email content.
 11. The ingestionsystem of claim 8, wherein the processor is further configured to: upondetermining the content type associated with the set of email content isstructured content, identify a set of fixed structures associated withthe structured content; identify the parsing module configured to obtaindata associated with the set of fixed structures; and apply theidentified parsing module to the set of email content to obtain the setof parsed email content associated with the set of fixed structures. 12.The ingestion system of claim 8, wherein the processor is furtherconfigured to: upon determining the content type associated with the setof email content is unstructured content, retrieve a subject and a fromaddress from the set of email content; receive an email content tableincluding a plurality of entries each having an associated subject andan associated from address; attempt to match at least one of the subjectand the from address to one or more of the plurality of entries havingan associated subject matching the subject or an associated from addressmatching the from address; and apply the mapper module to the set ofparsed email content to obtain the routing path, wherein the routingpath is at least partially identified by the attempt to match having anassociated subject matching the subject or an associated from addressmatching the from address.
 13. The ingestion system of claim 12, whereinthe processor is further configured to: upon failing the attempt tomatch at least one of the subject and the from address to the pluralityof entries, determine that the set of email content is associated with abusiness exception; identify a business exception path; and apply themapper module to the set of parsed email content to obtain the routingpath associated with the business exception path.
 14. The ingestionsystem of claim 12, wherein the processor is further configured to:receive an update to the email content table associated with an updatesubject and an update from address; validate that the update subject andupdate from address do not exist in the email content table; and updatethe email content table with the update.
 15. A method for processingemails and providing one or more intelligent workflows performed by aningestion server, the ingestion server including a processor and amemory, said method comprising: receiving an electronic mail messagecontaining a set of email content, wherein a content type is notidentified within the set of email content; determining the content typeassociated with the set of email content wherein the content type is oneof structured content and unstructured content; identifying a parsingmodule from a plurality of parsing modules to process the set of emailcontent, wherein the parsing module is identified based on the contenttype; applying the identified parsing module to the set of email contentto obtain a set of parsed email content; applying a mapper module to theset of parsed email content to obtain a routing path; defining anintelligent workflow based on the routing path; populating a work itemusing the set of parsed email content; and submitting the work itemusing the intelligent workflow.
 16. The method of claim 15, furthercomprising: applying a file extraction module to the set of emailcontent to obtain a file attached to the set of email content; applyingthe identified parsing module to the attached file to obtain a set ofparsed attached data; and populating the work item using the set ofparsed email content and the set of parsed attached data.
 17. The methodof claim 15, further comprising: generating a work item identifierassociated with the electronic mail message upon receiving theelectronic mail message; defining the work item with the work itemidentifier; and populating the work item using the set of parsed emailcontent.
 18. The method of claim 15, further comprising: upondetermining the content type associated with the set of email content isstructured content, identifying a set of fixed structures associatedwith the structured content; identifying the parsing module configuredto obtain data associated with the set of fixed structures; and applyingthe identified parsing module to the set of email content to obtain theset of parsed email content associated with the set of fixed structures.19. The method of claim 15, further comprising: upon determining thecontent type associated with the set of email content is unstructuredcontent, retrieving a subject and a from address from the set of emailcontent; receiving an email content table including a plurality ofentries each having an associated subject and an associated fromaddress; attempting to match at least one of the subject and the fromaddress to one or more of the plurality of entries having an associatedsubject matching the subject or an associated from address matching thefrom address; and applying the mapper module to the set of parsed emailcontent to obtain the routing path, wherein the routing path is at leastpartially identified by the attempt to match having an associatedsubject matching the subject or an associated from address matching thefrom address.
 20. The method of claim 19, further comprising: uponfailing the attempt to match at least one of the subject and the fromaddress to the plurality of entries, determining that the set of emailcontent is associated with a business exception; identifying a businessexception path; and applying the mapper module to the set of parsedemail content to obtain the routing path associated with the businessexception path.